//app.js
var mta = require("/pages/activity/mta/mta_analysis.js");
App({ 
  qqMapKey: 'THOBZ-C64CP-3OTDK-VIUZE-6Q5HF-Y2FM2',
  globalData: {
    apiDomain: "https://www.jiyilive.com",//'https://www.jiyilive.com',http://192.168.3.161:8080 http://114.240.133.15:8080
    userInfo: null,
    hasUserInfo: false,
    jsCode: null,
    apiToken: '',
    tmpApiToken: '',
    isAuth: true,
    isGetPhone: false,
    hasUserPhone: true
  },
  onLaunch: function(){
    //新增自动更新
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          updateManager.onUpdateReady(function () {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: function (res) {
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
            })
          })
        }
      })
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
      })
    }
  
    mta.App.init({
      "appID": "500699022",
      "eventID": "500699024",
      "autoReport": false,
      "statParam": true,
      "ignoreParams":[],
      "statPullDownFresh": true,
      "statShareApp": true,
      "statReachBottom": true
    });   
    var _this = this;
    // 登录
    wx.login({
      success: res => {
        // console.log("loginxinxi:",res) ;return;   //获取jscode    
        this.globalData.jsCode = res.code;
        // 获取用户信息
        wx.getSetting({
          success: res=>{
            if(res.authSetting['scope.userInfo']){
              // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
              wx.getUserInfo({
                success: res =>{
                  // 可以将 res 发送给后台解码出 unionId
                  this.globalData.userInfo = res.userInfo
                  this.globalData.hasUserInfo = true
                  //调后端接口获取token
                  this.apiRequest({
                    url: '/login/minoPro/getToken',
                    data: {
                      'jscode': this.globalData.jsCode
                    },
                    success: (res) => {
                      if (res.data.code === 0) {
                        this.globalData.apiToken = res.data.data                        
                      }
                    }
                  });
                  // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                  // 所以此处加入 callback 以防止这种情况
                  if (this.userInfoReadyCallback){
                    this.userInfoReadyCallback(res)
                  }
                }
              });
              _this.globalData.isLoged=true;//获得了用户信息，走正常获取手机号流程
              _this.globalData.isGetPhone=false;//为了apirequest能正常走
            } else {//没获取过用户信息，单独开请求获取
              //调后端接口获取token 【【注意】】这里并没有登录
              this.apiRequest({
                url: '/login/minoPro/getToken',
                data: {
                  'jscode': this.globalData.jsCode,
                  // "gender": res.userInfo.gender
                },
                success: (res) => {//获取到token
                  if (res.data.code === 0){
                    _this.globalData.tmpApiToken = res.data.data
                    
                    wx.request({
                      method: 'POST',
                      header: {
                        'token': _this.globalData.tmpApiToken,
                        'Content-Type': 'application/x-www-form-urlencoded'
                      },
                      url: _this.globalData.apiDomain + "/my/findUserByToken",
                      success: res => {
                        console.log("手机号信息：",res)
                        _this.globalData.isGetPhone = true;//手机号信息已经请求结束可以开始判断
                        if (res.data.code == 5 || res.data.data.phoneNumber==="") {
                          _this.globalData.hasUserPhone = false;
                        }
                      }//请求为了判断是否有手机号
                    })
                  }
                }
              });
              this.globalData.isAuth = false;
            }
          }
        })
      }
    })

    // 获取系统状态栏信息
    wx.getSystemInfo({
      success: e => {
        this.globalData.StatusBar = e.statusBarHeight;
        let custom = wx.getMenuButtonBoundingClientRect();
        this.globalData.Custom = custom;
        //console.log(custom.top - e.statusBarHeight);
        if (custom.top - e.statusBarHeight < 0){
          this.globalData.CustomBar = custom.bottom + e.statusBarHeight;
        }else{
          this.globalData.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
        }
      }
    })
  },
  //some configs
  //全局统一调用接口的方法
  apiRequest: function(options){
    // return;
    wx.request({
      url: this.globalData.apiDomain + options.url,
      method: 'POST',
      header:{
        'token':this.globalData.apiToken,
        'Content-Type': 'application/x-www-form-urlencoded'        
      },     
      data: options.data,
      success: function(e){     
        if (e.data.code == 1){
          // console.log(e);
          // wx.showToast({
          //   title: "服务器开小差，请稍后再试试~",
          //   icon: 'none'
          // })
          options.success(e)//全部返回
          return;
          if (e.data.message == "用户通关记录为空" || e.data.message == "查询为空"){//为活动专门添加的判断
            options.success(e);          
          }else{//屏蔽空信息
            return;
            wx.showToast({
              title: e.data.message,
              icon: 'none'
            });
          }
          return false;
        }
        if (e.data.code == 3){//登录失效
          if (!getApp().globalData.hasUserInfo){
            wx.switchTab({
              url: '/pages/mine/index',
              success: res => {
                wx.showToast({
                  title: '请先登录',
                  icon: 'none'
                })
              }
            });
            return true;
          }
          // 登录
          wx.login({
            success: res => {
              // console.log("登录app:",res)
              wx.request({
                url: getApp().globalData.apiDomain + '/login/minoPro/getToken',
                method: 'POST',
                header: {
                  'Content-Type': 'application/x-www-form-urlencoded'
                },
                data: {
                  'jscode': res.code
                },
                success: (res) => {
                  if (res.data.code === 0) {
                    getApp().globalData.apiToken = res.data.data
                  }
                }
              })
            }
          })
          return true;
          wx.switchTab({
            url: '/pages/index/index',
            success: function(){
              wx.showToast({
                title: '令牌过期，重新登陆',
                icon: 'none'
              })
            }
          })
        }
        if (e.data.code == 5){//没有手机号
          if(getApp().globalData.hasUserPhone){//第一次进来的判断
            
            options.success(e)
            // getApp().globalData.hasUserPhone=false;
            return false;
          }
          
          wx.showModal({
            content: '需要完善手机号信息才能继续浏览哦~',
            showCancel: false,
            confirmText: '去绑定',
            success: res => {
              
              wx.navigateTo({
                url: '/pages/mine/userinfo/index',
                success: res => {
                  wx.showToast({
                    title: '请绑定手机号',
                    icon: 'none'
                  })
                }
              })
            }
          })
          return false;
        }
        options.success(e);
      },
      fail: res => {
        if(options.fail){
          options.fail(res);
        }        
        // if (res.data.code == 5){
        //   wx.redirectTo({
        //     url: 'pages/mine/userinfo/index',
        //   })
        // }
      },
      complete: res=>{
        if (options.complete) {
          options.complete(res);
         }
        }
    });
  }
})